/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Me encontre este codigo (bastante simple por cierto) para, dado un conjunto
 * de caracteres "abc...012..." generar todas las permutaciones posibles de un
 * tamano dado.
 *
 * @author Julian Moreno
 */
public class GenerarPermutaciones {
    static boolean[] control = new boolean[64]; //a-z, A-Z y 0-9
        
    public static void generarPermutaciones(char[] elementos, String actual, int cantidad) {
        if (cantidad == 0) {
            System.out.println(actual);
        } else {
            for (int i = 0; i < elementos.length; i++) {
                if (control[i] == true) {
                    continue;
                }
                control[i] = true;
                generarPermutaciones(elementos, actual + elementos[i], cantidad - 1);
                control[i] = false;
            }
        }
    }
    
    public static void main(String args[]) {
        String s = "abc";
        char[] caracteres = s.toCharArray();
        
        //el ultimo parametro puede ir de 1 a s.length()
        generarPermutaciones(caracteres, "", s.length());
    }
}
